上一篇中我們成功取得 Workbook、WorksheetCollection 後,接著我們可以透過 Worksheet:
- 取得/設定 Worksheet 的各項資訊,如:背景、隱藏工作表、顯示尺標、顯示大綱等
- 取得其他功能的 Collection,如:圖表、資料驗證、樞紐分析、嵌入外部檔案等
取得 Worksheet
上篇中介紹了 Worksheet 有三個參數(index、sheetName、sheetType),在取得 Worksheet 時,我們可以利用 index 或 sheetName 來取得特定的 Worksheet 物件,或是使用 for 遍歷所有 Worksheet,如下例。
Workbook workbook = new Workbook("file.xls");
WorksheetCollection sheets = workbook.getWorksheets();
// 根據 index、sheetName 取得特定 Worksheet 物件
Worksheet sheet1 = sheets.get(index);
Worksheet sheet2 = sheets.get(sheetName);
// 使用 for 遍歷所有 Worksheet
for(int i = 0; i < worksheets.getCount(); i++) {
    Worksheet sheet = sheets.get(i);
}
Worksheet
成功取得 Worksheet 後,接著我們可以設定 Worksheet 的默認參數,或取得 Worksheet 底下的其他 Collection。
Worksheet Property
取得 Worksheet 資訊
| getter | setter | 說明 | 
| (String)getName() | setName(String) | sheetName,使用者設定的名稱 | 
| (String)getCodeName() | setCodeName(String) | 系統中的 sheetName,預設為:Sheet1、Sheet2、... | 
| (String)getUniqueId() | setUniqueId(String) | sheet 的唯一值,範例:{07e90875-9ec9-48fb-9fbc-3a02eaea8f85} | 
| (int)getIndex() |  | 這個 sheet 在 WorksheetCollection 中排第幾個(0,1,2,...) | 
| (int)getTabId() | setTabId | 這個 sheet 排在第幾個(1,2,3,...) | 
| (int)getType() | setType(int) | 這個 sheet 的 SheetType | 
| (boolean)hasAutofilter() |  | 是否含有篩選器 | 
| (boolean)isProtected() |  | 是否被保護 | 
| (int)getFirstVisibleColumn() | setFirstVisibleColumn(int) | 取得第一個可見行 | 
| (int)getFirstVisibleRow() | setFirstVisibleRow(int) | 取得第一個可見列 | 
Worksheet 顯示設定:
| getter | setter | 說明 | 
| (byte[])getBackgroundImage() | setBackgroundImage(byte[]) | 設定背景圖片 | 
| setBackground(byte[]) | 設定背景 |  | 
| (aspose.cells.Color)getTabColor() | setTabColor(aspose.cells.Color) | 工作表標籤顏色設定 | 
| (boolean)getDisplayRightToLeft | setDisplayRightToLeft(boolean) | sheet 是否由右往左顯示,預設為false | 
| (boolean)isVisible() | setVisible(boolean) | sheet 是否可見。false 為隱藏 sheet | 
| (int)getVisibilityType() | setVisibilityType(int) | VisibilityType,選項:HIDDEN(1):隱藏,使用者可取消隱藏、VERY_HIDDEN(2):隱藏,只能透過程式改為可見、VISIBLE(3):可見 | 
// 可見
worksheets.get(3).setVisible(true);
worksheets.get(7).setVisibilityType(com.aspose.cells.VisibilityType.VISIBLE);
// 隱藏
worksheets.get(4).setVisible(false);
worksheets.get(5).setVisibilityType(com.aspose.cells.VisibilityType.HIDDEN);
// 隱藏,使用者不可取消隱藏,僅可透過程式取消隱藏
worksheets.get(6).setVisibilityType(com.aspose.cells.VisibilityType.VERY_HIDDEN);
檢視設定:
| getter | setter | 說明 | 
| (boolean)isRowColumnHeadersVisible() | setRowColumnHeadersVisible(boolean) | 是否凍結頂端列 | 
| (int)getPaneState() |  | 回傳窗格狀態 PaneStateType,FROZEN(0)、FROZEN_SPLIT(1)、SPLIT(2)、NORMAL(3) | 
// 凍結頂端列
sheet.setRowColumnHeadersVisible(true);
System.out.println(sheet.getPaneState()); //0
// 取消凍結首端列
sheet.setRowColumnHeadersVisible(false);
System.out.println(sheet.getPaneState()); //3
進階設定
| getter | setter | 說明 | 
| (boolean)isRulerVisible() | setRulerVisible(boolean) | 是否顯示尺規 | 
| (boolean)isOutlineShown() | setOutlineShown(boolean) | 是否顯示大綱 | 
| (boolean)getDisplayZeros() | setDisplayZeros(boolean) | 當 cell 的值為零時,是否顯示 | 
| (int)getZoom() | setZoom(int) | 顯示比例,輸入值應於100~400之間 | 
| (boolean)isPageBreakPreview() | setPageBreakPreview(boolean) | 是否使用分頁預覽顯示,預設為false | 
| (int)getViewType() | setViewType(int) | 檢視方式 ViewType,3種模式圖片說明,選項:標準模式 NORMAL_VIEW(0)、分頁預覽 PAGE_BREAK_PREVIEW(1)、整頁模式 PAGE_LAYOUT_VIEW(2) | 
// 標準模式
worksheets.get(0).setPageBreakPreview(false);
worksheets.get(1).setViewType(com.aspose.cells.ViewType.NORMAL_VIEW);
// 分頁預覽
worksheets.get(0).setPageBreakPreview(true);
worksheets.get(1).setViewType(com.aspose.cells.ViewType.PAGE_BREAK_PREVIEW);
// 整頁模式
worksheets.get(2).setViewType(com.aspose.cells.ViewType.PAGE_LAYOUT_VIEW);

相容性設定:
| getter | setter | 說明 | 
| (boolean)getTransitionEntry() | getTransitionEntry(boolean) | Lotus 相容性設定以相容模式開啟 Lotus | 
| (boolean)getTransitionEvaluation() | getTransitionEvaluation(boolean) | Lotus 相容性設定將 Lotus 公式轉換為 Excel 公式 | 
取得 Collection
常用功能區
插入功能區
頁面配置功能區
公式功能區
資料功能區
校閱功能區
開發人員功能區
檔案功能區
透過這次整理才驚覺 Excel 的功能這麼多,也見識到 aspose 這個工具的強大,希望這個總整理可以幫助您快速找到需要的物件。其中的一些物件也會出現在以後的文章中,並實際使用給您參考,敬請期待。
下一次要介紹的是 Cells,其中包含資料輸出等,感謝您的閱讀!